package com.malou.server.seguridad.menu;

import java.util.List;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.malou.client.seguridad.menu.MenuOpciones;
import com.malou.client.seguridad.menu.MenuService;
import com.malou.client.util.MensajeData;

public class MenuServiceImpl extends RemoteServiceServlet implements
MenuService  {

	private static final long serialVersionUID = 1L;
	/*
	public MenuOpciones getMenu(MenuOpciones menu, Integer usuario_id, Integer tipo){
		MenuOpciones mnus = null;
		mnus = Menus.getTreeMenu(menu);		
		return mnus;
	}
*/
	@Override
	public MensajeData save(MenuOpciones mnu) {
		MensajeData data = new MensajeData();
		data.guardado = true;
		
		if(!Menus.save(mnu)){
			data.guardado = false;
			data.errorTipo = Menus.errorTipo;
		}
		
		return data;
	}

	@Override
	public MensajeData delete(Integer id) {
		MensajeData data = new MensajeData();
		data.guardado = true;
		
		if(!Menus.delete(id)){
			data.guardado = false;
		}
		
		return data;
	}

	@Override
	public List<MenuOpciones> getMenusArray(Integer usuario_id, Integer tipo) {

		Menus.usuario_id = usuario_id;
		Menus.tipo = tipo;
		return  Menus.getTreeMenu();	    
	}

	@Override
	public MensajeData savePermisos(Integer usuario_id, Integer tipo,
			List<Integer> updateToPermited, List<Integer> insertToPermited,
			List<Integer> updateIfExistElseInsertToNoPermited) {
		MensajeData data = new MensajeData();
		data.guardado = true;
		
		Menus.usuario_id = usuario_id;
		Menus.tipo = tipo;
		
		if(!Menus.savePermisos(updateToPermited, insertToPermited, updateIfExistElseInsertToNoPermited)){
			data.guardado = false;
			//data.errorTipo = Menus.errorTipo;
		}
		//System.out.println("updateToPermited "+updateToPermited.size());
		//System.out.println("insertToPermited "+insertToPermited.size());
		//System.out.println("updateIfExistElseInsertToNoPermited "+updateIfExistElseInsertToNoPermited.size());
		
		return data;
	}

	@Override
	public List<MenuOpciones> getMenusPermitidos(Integer usuario_id) {
		Menus.usuario_id = usuario_id;
		
		Integer privilegio = Menus.getPrivilegioUsuario(usuario_id);
		 
		if(privilegio == 1)
			return  Menus.getTreeMenuAdmin();
		else
			return  Menus.getTreeMenuPermitidos();
	}
}
